home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / gt_power / mmp230.zip / MM_PRINT.DOC next >
Text File  |  1990-11-27  |  11KB  |  317 lines

  1.                         MM_PRINT rev 2.30 beta
  2.                         ----------------------
  3.  
  4. This is issued mainly to correct a share mode error in 2.28.  I have also
  5. included some enhancements for those that would like to experiment
  6. with the MMENU feature of GT16.
  7.  
  8. This is purely an experiment - I don't anticipate it being exceptionally
  9. useful.  Too many limitations.  But if it works, it will display messages
  10. in a manner more easily recognised by 7 bit callers.
  11.  
  12. For those that want to try it :
  13.  
  14. a)  make sure mm_print.tbl is in the MM subdirectory of your GTPATH
  15.  
  16. b)  put read7.bat in your GTPATH directory
  17.  
  18. c)  put a MMENU comand in your sysop.bbs :
  19.  
  20.         "MMENU=[R7]read7"
  21.  
  22. The expected limitations:
  23.  
  24. a)  will only work on COM1 and COM2, at baud rates supported by DOS bios
  25.     (ie, speeds up to 9600).
  26.  
  27. b)  XON/XOFF not supported.
  28.  
  29. c)  May cough and splutter due to comms errors.  For example, some V21/V23
  30.     modems seem to work in half duplex causing problems at low speed.
  31.  
  32. d)  Will not display private messages, even if addressed to the caller
  33.  
  34. e)  Will not update the caller's current message pointer.
  35.  
  36. f)  It works best if you are not overlaying doors - but there seems to be
  37.     no provision in MMENU for disabling overlay without doing so for ALL
  38.     doors.
  39.  
  40.  
  41. Note:   The program will, by itself, read and write to the appropriate com
  42.         port as well as the PC console.  Do NOT use CTTY with it!
  43.  
  44.  
  45. ps:     Despite the statement below, the latest edition of MMR is still
  46.         2.27, which may have a problem locating mm_print.exe.  You may
  47.         need to execute MMR from the directory containing mm_print.exe
  48.         until MMR is revised, and the note about deleting spool files
  49.         still applies.
  50.  
  51.  
  52.                         MM_PRINT rev 2.28 beta
  53.                         ----------------------
  54.  
  55. MM_PRINT rev 2.28 is intended to be used with MMR 2.28.  It will
  56. work with any revision from 2.00 onwards, but if used with the Q option
  57. (to spool via the DOS print spooler) you will need to periodically delete
  58. the spool files, eg by
  59.  
  60.         del %gtpath\mm\sp_*.*
  61.  
  62. which can conveniently go in your autoexec.bat
  63.  
  64. It is called directly from MMR using Printer Control parameters configured
  65. in MMR's configuration screen.
  66.  
  67. This version allows output either to :
  68.  
  69. a)      a printer (default is DOS device PRN)
  70.  
  71. b)      a file (default is MM_PRINT.OUT in the MM subdirectory of the
  72.         GTPATH).
  73.  
  74. c)      the DOS print spooler (which must be loaded before executing MMR,
  75.         perhaps by putting PRINT in your autoexec.bat).
  76.  
  77. d)      printing can be performed by calling a background task in desqview.
  78.  
  79. In methods a and b, the file name or DOS device can optionally be specified
  80. or corrected at run time.
  81.  
  82.  
  83. New features :
  84.  
  85.         2.28    able to output via the DOS print spooler.
  86.  
  87.         2.18:   file output defaults to the MM subdirectory rather
  88.                 than the current directory.
  89.  
  90.         2.15:   the addition of the parameters & and D which are for
  91.                 running MM_PRINT as a separate task under Desqview.
  92.  
  93.  
  94. Installation
  95. ------------
  96.  
  97. MM_PRINT.EXE may be installed anywhere in the DOS path.  Before doing
  98. so, you should ensure there is not already a copy of MM_PRINT anywhere
  99. on your system, since that will cause great confusion at some time in
  100. the future.
  101.  
  102. You may optionally install the sample MM_PRINT.TBL (described later). If
  103. used, this *must* be installed in the MM subdirectory of your GTPATH.
  104.  
  105.  
  106. Parameters
  107. ----------
  108.  
  109. The parameters are configured in the Printer Control entry in the MMR
  110. configuration screen.  That string should contain one or more of the
  111. entries described here, with no intervening spaces.
  112.  
  113. The options (in any order) are:
  114.  
  115.     C   Confirm printer is ready before proceeding.
  116.  
  117.     D   Run as a separate task in Desqview.  The window starts in the
  118.         foreground (maybe you need to confirm printer is ready).
  119.  
  120.         You need LOAD.EXE as described in MMR-218.REV for this.
  121.  
  122.     &   Run as a separate task in Desqview.  The window starts in the
  123.         background.
  124.  
  125.         You need LOAD.EXE as described in MMR-218.REV for this.
  126.  
  127.     F   Append the printout to a File (default name is MM_PRINT.OUT in
  128.         current directory.
  129.  
  130.     J   Append the printout to your Jotter.
  131.  
  132.     L   Alternative linefeed format.  Probably not needed.
  133.  
  134.     P   Send output to device PRN.
  135.  
  136.     Q   Place the file in the queue of the DOS print spooler.
  137.  
  138.     R   Edit name of output device at runtime (specify also P or F for
  139.         default destination).
  140.  
  141.     T   Use a translate table (MM_PRINT.TBL in MM subdirectory of GTPATH).
  142.  
  143.     7   Use the translate table.  Then if any 8 bit characters (or
  144.         values below hex 20) remain, represent them by their hex values.
  145.         If no translation is required, an empty translation table must
  146.         be used.
  147.  
  148.     W   If a translated line exceeds 80 characters, word-wrap the line.
  149.         If no translation is required, an empty translation table must
  150.         be used and a translation flag (either T or 7) is also required.
  151.  
  152.  
  153.  
  154.     Examples:
  155.  
  156.         PC      Output to printer, confirm before starting
  157.  
  158.         FRW7    Output to file, ask name at runtime, use translate
  159.                 table, convert remaining 8 bit characters, wrap lines
  160.                 exceeding 80 characters.
  161.  
  162.         QT      Output via the DOS print spooler, using translate table.
  163.  
  164.  
  165. Output translation
  166. ------------------
  167.  
  168. The translation table is optional.  Translation will be omitted if the T
  169. is not included in the printer control string, or if the translation
  170. table is not found in the MM subdirectory of GTPATH.
  171.  
  172. You can make your own translate table if you have special requirements.
  173. Each translate entry consists of one line, which can either :
  174.  
  175. a)      translate characters on a one-for-one basis, eg to substitute
  176.         a pound sign wherever a hash appears.
  177.  
  178. b)      translate a text string of arbitrary length into a byte sequence
  179.         of arbitrary length, or suppress it altogether.
  180.  
  181. c)      eliminate any line containing the specified string.
  182.  
  183. d)      qualify any particular translation so that it only occurs if the
  184.         specified string is at the beginning or end of a line.
  185.  
  186. The translation process does have some inherent known limitations, as
  187. described below.
  188.  
  189. The example MM_PRINT.TBL translation table enclosed will perform a
  190. similar translation to the 7 option in MM_PRINT 1.64, ie it will convert
  191. the standard box graphics characters to +|- representation and will
  192. express several other 8 bit characters in a 7-bit readable form.
  193.  
  194.  
  195. Translation table format
  196. ------------------------
  197.  
  198. The translation table consists of one or more lines, each describing
  199. a translation entry.
  200.  
  201. Each translation entry consists of 3 parts:
  202.  
  203.    ┌─────────────────── Type of translation
  204.    │    ┌────────────── Search string
  205.    │    │       ┌────── Replace string
  206.    ┴   ─┴─     ─┴─
  207.    *   [┌]     [+]
  208.  
  209. The TYPE must appear as the *first* character on the line.  Spaces or
  210. tabs may optionally appear before or between the two strings to improve
  211. readability.
  212.  
  213. a)  Type of translation:
  214.  
  215.         <       translate only if on beginning of a line
  216.  
  217.         *       translate anywhere
  218.  
  219.         >       translate only if on end of a line
  220.  
  221.         ;       comment - performs no action.
  222.  
  223. b)  String to search for :
  224.  
  225.         The search string is enclosed in square brackets.  It must not
  226.         be an empty string.
  227.  
  228.         Characters which your editor cannot conveniently handle can be
  229.         represented in $nn format, ie a $ sign followed by TWO hex
  230.         digits.  Following a $ with anything else is likely to lead to
  231.         misoperation.
  232.  
  233.         Special considerations apply to :
  234.  
  235.                 SPACES:         if you include them WITHIN a string, they
  236.                                 are considered significant.
  237.  
  238.                 ALPHAs          are matched on a case-insensitive basis.
  239.  
  240.                 $               if you need to search for a string
  241.                                 *containing* a $ character, you must use
  242.                                 its $24 representation.
  243.  
  244.                 ]               must similarly be represented as $5D.
  245.  
  246. c)  Replacement string.
  247.  
  248.         The replacement string will normally obey the same rules as
  249.         the search string, but can also be :
  250.  
  251.             empty, ie just [], if you want to *delete* any string
  252.             matching the one defined in b)
  253.  
  254.             missing, ie without even the brackets, if you want to delete
  255.             any *line* which containings a string matching the one
  256.             defined in b).
  257.  
  258. Examples:
  259.  
  260.     *   [│]       [|]
  261.     ;
  262.     ;   prints | wherever a │ appears in the message.
  263.  
  264.     <[.]
  265.     ;
  266.     ;   deletes any lines beginning with a dot command, but not lines
  267.         containing the . elsewhere.
  268.  
  269.     *   [$9c]   [(pounds)]
  270.     ;
  271.     ;   if your printer doesn't have a pound sign, print it as a word.
  272.  
  273.     *[$9c][#]
  274.     ;
  275.     ;   if your printer prints a pound when you send it a hash 
  276.  
  277.     *   [dog]           [cat and dog]
  278.     ;
  279.     ;   a general translation to illustrate the principle
  280.  
  281.     *   [<red>]         [$1bQ]
  282.     ;
  283.     ;   a more useful example, if your messages contain predefined
  284.     ;   control codes which can be represented in some way on your
  285.     ;   printer.  In this case <red> in a message would generate
  286.     ;   ESCape-Q (which would presumably be chosen to do something useful
  287.     ;   on your printer).
  288.  
  289. Translations are performed in "top down" order, ie the first line is
  290. performed first.  In most cases this will not be important, but should
  291. be taken into account if you wish to either cause or prevent recursive
  292. translation from occurring.
  293.  
  294.  
  295. Limitations
  296. -----------
  297.  
  298. MM_PRINT will process a maximum of 100 translation entries (though it
  299. may not drive a fast printer at full speed with that many translations).
  300.  
  301. The search and replace strings can each contain up to 40 characters.
  302.  
  303. If the W option is used, MM_PRINT will attempt to word wrap lines which
  304. exceed 80 characters after translation.  This may cause unexpected
  305. results where the result contains paper movement characters.
  306.  
  307. For example, you could cause a printer to print slashed zeros (assuming
  308. it doesn't already do so) by :
  309.  
  310.     *   [0]             [0$08/]
  311.  
  312. ie, replace zero with zero backspace slash.  But MMR will then
  313. inadvertantly limit the length of that line to 78 characters, since it
  314. will not know of the unexpected paper movement.  If you had a lot of
  315. zeros on the same line, the results could be less useful.
  316.  
  317.